package com.supplychain.financial.parent.api;

import com.supplychain.financial.parent.entity.DTO.PageDTO;
import com.supplychain.financial.parent.common.exception.CustomException;

import java.util.List;
import java.util.Map;

public interface KtPurchaseOrderService {
	PageDTO<Map<String,Object>> getPurchaseListByPage(Map parameter);
	
	List<Map<String,Object>> getPurchaseItems(Map parameter);

	/**
	 * 获取修改数据
	 * @param parameter
	 * @return
	 */
	Map findById(String id);

	/**
	 * 获取供应商
	 * @param parameter
	 * @return
	 */
	PageDTO<Map<String,Object>> getSupplierListByPage(Map parameter);
	
	/**
	 * 新增修改供应商
	 * @param parameter
	 */
	void saveSupplier(Map parameter);

	/**
	 * 删除供应商
	 * @param id
	 * @return
	 */
	int deleteSupplier(String id);

	/**
	 * 保存采购单
	 * @param parameter
	 */
	void savePurchaseOrder(Map parameter);
	
	/**
	 * 采购订单审核
	 * @param parameter
	 */
	void purchaseOrderCheck(Map parameter);
	
	
	/**
	 * 要货订单列表
	 * @param parameter
	 * @return
	 */
	PageDTO<Map<String,Object>> getShopRequireOrderListByPage(Map parameter);
	
	
	/**
	 * 要货订单详情
	 * @param parameter
	 * @return
	 */
	List<Map<String,Object>> getShopRequireOrderItems(Map parameter);

	/**
	 * 要货订单确认数量
	 * @param parameter
	 * @return
	 */
	int upShopRequireOrderItems(Map parameter);
	
	/**
	 * 保存要货订单
	 * @param parameter
	 */
	void saveShopRequireOrder(Map parameter);
	
	/**
	 * 要货订单审核
	 * @param parameter
	 */
	void shopRequireOrderCheck(Map parameter);
	
	/**
	 * 店铺到货确认
	 * @param parameter
	 */
	void shopConfirmDeliverOrder(Map parameter);
	
	
	/**
	 * 出货订单列表
	 * @param parameter
	 * @return
	 */
	PageDTO<Map<String,Object>> getShopOutstockOrderListByPage(Map parameter);
	
	
	/**
	 * 出货订单详情
	 * @param parameter
	 * @return
	 */
	List<Map<String,Object>> getShopOutstockOrderItems(Map parameter);
	
	/**
	 * 保存出货订单
	 * @param parameter
	 */
	void saveShopOutstockOrder(Map parameter);
	
	/**
	 * 出货订单审核
	 * @param parameter
	 */
	void shopOutstockOrderCheck(Map parameter);
	
	
	/**
	 * 店铺出货确认
	 * @param parameter
	 */
	void shopConfirmOutstockOrder(Map parameter) throws CustomException;
	
	
	/**
	 * 入库订单列表
	 * @param parameter
	 * @return
	 */
	PageDTO<Map<String,Object>> getShopInstockOrderListByPage(Map parameter);
	
	
	/**
	 * 入库订单详情
	 * @param parameter
	 * @return
	 */
	List<Map<String,Object>> getShopInstockOrderItems(Map parameter);
	
	/**
	 * 保存入库订单
	 * @param parameter
	 */
	void saveShopInstockOrder(Map parameter);
	
	/**
	 * 入库订单审核
	 * @param parameter
	 */
	void shopInstockOrderCheck(Map parameter);
	
	
	/**
	 * 店铺入库确认
	 * @param parameter
	 */
	void shopConfirmInstockOrder(Map parameter) throws CustomException;
	
	
	/**
	 * 保存出库入库单
	 * @param parameter
	 */
	void createInOutStockOrder(Map parameter) throws CustomException;
}
